/**
 * 数组去重1
 * 利用Set无法保存重复元素的方案，将数组转成Set，再转回来。
 */
function unique(arr) {
    return Array.from(new Set(arr));
}

/**
 * 数组去重2
 * 使用Map(Object, Set), indexOf等也可以存储遍历过的元素，一次遍历去重完成
 */

function unique1(arr) {
    let temp = [];
    let iterMap =  new Map();
    arr.forEach(item => {
        if (!iterMap.get(item)) {
            temp.push(item);
        }
        iterMap.set(item, 1);
    });
    return temp;
}

var a = [1, 2, 3, 4, 5, 6, 7, 8, 10];

// 二分查找
function binarySearch(arr, r) {
    let low = 0;
    let mid = arr.length / 2 >>> 0;
    let high = arr.length - 1;
    while (low <= high) {
        mid = (high - low) / 2  + low >>> 0;
        if (arr[mid] < r) {
            low = mid + 1;
        } else if (arr[mid] > r) {
            high = mid - 1;
        } else {
            return mid;
        }
    }
    return -1;
}
